package com.haima.test1;

import com.haima.domin.Product;

import java.util.ArrayList;
import java.util.Scanner;

public class t10 {
    static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
       /* 假设我们正在设计一个在线商店系统，我们需要实现一个购物车功能，用户可以将商品添加到购物车中，并在结账时将购物车中的商品结算。
       每个商品具有名称、价格和数量等属性，购物车可以添加商品，删除商品以及计算购物车中的总价格等操作。
       为了实现这个购物车功能，我们可以定义一个 Product 类来表示每个商品，该类包含名称、价格和数量等属性，以及计算商品总价格的方法。
       然后我们可以使用 ArrayList 来存储购物车中的商品列表，实现购物车的添加、删除以及计算总价格等操作。*/
        ArrayList<Product> list = new ArrayList<>();
        lo:
        while (true) {
            System.out.println("-----欢迎来到在线商店系统------");
            System.out.println("1.添加商品");
            System.out.println("2.删除商品");
            System.out.println("3.计算商品总价格");
            System.out.println("4.查看购物车里的商品");
            System.out.println("5.退出在线商店系统");
            System.out.println("请输入您的选择");
            int i = sc.nextInt();
            switch (i) {
                case 1:
                    setAdd(list);
                    break;
                case 2:
                    setDelete(list);
                    break;
                case 3:
                    setSum(list);
                    break;
                case 4:
                    getCheck(list);
                    break;
                case 5:
                    System.out.println("退出系统!");
                    break lo;
                default:
                    System.out.println("输入错误");
                    break lo;

            }
        }

    }

    private static void getCheck(ArrayList<Product> list) {
        System.out.println("商品名称\t\t价格\t\t数量");
        for (int i = 0; i < list.size(); i++) {
            Product pr = list.get(i);
            System.out.println(pr.getName()+"\t\t\t"+pr.getPrice()+"\t"+pr.getQuantity());
        }
    }

    public static void setSum(ArrayList<Product> list) {
        double sum = 0;
        for (int i = 0; i < list.size(); i++) {
            Product pr = list.get(i);
            double he = pr.getPrice() * pr.getQuantity();
            sum += he;
        }
        System.out.println("购物车中商品的总价格为:" + sum);
    }

    public static void setAdd(ArrayList<Product> list) {
        System.out.println("商品名称为:");
        String name = sc.next();
        System.out.println("商品价格为:");
        double price = sc.nextDouble();
        System.out.println("商品数量为:");
        int quantity = sc.nextInt();
        Product pr = new Product(name, price, quantity);
        list.add(pr);
        System.out.println("商品成功添加到购物车!");
    }

    public static void setDelete(ArrayList<Product> list) {
        if (list.size() == 0) {
            System.out.println("请先添加商品在删除");
            return;
        }

        System.out.println("请输入要删除的商品名称:");
        String name = sc.next();
        int index = getIndex(list, name);
        if (index == -1) {
            System.out.println("没有该商品!");
            return;
        } else {
            list.remove(index);
            System.out.println("删除成功!");
        }

    }

    public static int getIndex(ArrayList<Product> list, String name) {
        int index = -1;
        for (int i = 0; i < list.size(); i++) {
            Product pr = list.get(i);
            if (name.equals(pr.getName())) {
                index = i;
            }
        }
        return index;
    }
}
